package mcs8.mdm;

import java.util.List;

public class PolicyManager {

    //*************************************************
    /* Mcs8  管控接口                                 */
    //*************************************************

    public static void setDriveNodeValue(String path, String value) {
        throw new RuntimeException();
    }

    public static String getDriveNodeValue(String path) {
        throw new RuntimeException();
    }

    public static void setSystemProperties(String key, String value) {
        throw new RuntimeException();
    }

    public static String getSystemProperties(String key, String defaultValue) {
        throw new RuntimeException();
    }

    public static String getInternalProductModel() {
        throw new RuntimeException();
    }

    public static boolean getIrLedState() {
        throw new RuntimeException();
    }

    /**
     * 开关红外线
     * @param open 是否开关
     *             true：打开红外线
     *             false：关闭红外线
     */
    public static void irLedEnable(boolean open) {
        throw new RuntimeException();
    }

    /**
     * 开关红外灯大功率模式
     * @param open 是否开关
     *             true：打开红外灯大功率模式
     *             false：关闭红外灯大功率模式
     */
    public static void irLedFlashOpen(boolean open) {
        throw new RuntimeException();
    }

    /**
     * 开关红蓝爆闪灯
     * @param open 是否开关
     *             true：打开红蓝爆闪灯
     *             false：关闭红蓝爆闪灯
     */
    public static void strobeLightEnable(boolean open) {
        throw new RuntimeException();
    }

    /**
     * 开关激光灯
     *
     * @param open 是否开关
     *             true：打开激光灯
     *             false：关闭激光灯
     * @return true：执行成功；false：执行失败
     */
    public static void laserLightEnabled(boolean open) {
        throw new RuntimeException();
    }

    /**
     * 开关红色LED
     *
     * @param open 是否开关
     *             true：打开红色LED
     *             false：关闭红色LED
     */
    public static void redLightEnable(boolean open) {
        throw new RuntimeException();
    }

    /**
     * 开关蓝色LED
     *
     * @param open 是否开关
     *             true：打开蓝色LED
     *             false：关闭蓝色LED
     */
    public static void blueLightEnable(boolean open) {
        throw new RuntimeException();
    }

    /**
     * 开关绿色LED
     *
     * @param open 是否开关
     *             true：打开绿色LED
     *             false：关闭绿色LED
     */
    public static void greenLightEnable(boolean open) {
        throw new RuntimeException();
    }

    /**
     * 开关指示LED
     *
     * @param open 是否开关
     *             true：打开指示LED
     *             false：关闭指示LED
     */
    public static void pilotLampOpen(boolean open) {
        throw new RuntimeException();
    }

    /**
     * 开关IrCut
     *
     * @param open 是否开关
     *             true：打开IrCut
     *             false：关闭IrCut
     */
    public static void irCutEnable(boolean open) {
        throw new RuntimeException();
    }

    /**
     * 得到IrCut当前状态
     *
     * @return true：IrCut打开; false：IrCut关闭
     */
    public static boolean getIrCutStatus() {
        throw new RuntimeException();
    }

    /**
     * 开关白光灯
     *
     * @param open 是否开关
     *             true：打开IrCut
     *             false：关闭IrCut
     */
    public static void openFlash(boolean open) {
        throw new RuntimeException();
    }

    /**
     * 得到飞行模式状态
     * get airplane mode state
     *
     * @return true：打开、false：关闭
     */
    public static boolean getAirplaneModeState() {
        throw new RuntimeException();
    }

    /**
     * 打开或关闭飞行模式
     * open or close airplane
     *
     * @param open 是否打开
     */
    public static void openAirplaneMode(boolean open) {
        throw new RuntimeException();
    }

    /**
     * 得到外置SD卡路径
     *
     * @return 外置SD卡路径
     */
    public static String getExternalSDCard() {
        throw new RuntimeException();
    }

    /**
     * 得到光敏值
     * @return : 光敏值
     */
    public static int getPhotosensitive() {
        throw new RuntimeException();
    }

    /**
     * 得到状态栏是否可以下拉
     *
     * @retrun 状态栏是否可以下拉 true：可下拉、false：不可下拉
     */
    public static boolean getStatusBarDropEnable() {
        throw new RuntimeException();
    }

    /**
     * 设置状态栏是否可以下拉
     *
     * @param enable true：可下拉、false：不可下拉
     */
    public static void setStatusBarDropEnable(boolean enable) {
        throw new RuntimeException();
    }

    /**
     * 得到通知栏是否可用
     *
     * @retrun 通知栏是否可用 true：可用、false：禁用
     */
    public static boolean getNotificationBarEnable() {
        throw new RuntimeException();
    }

    /**
     * 设置通知栏是否可用
     *
     * @param enable true：可用、false：禁用
     */
    public static void setNotificationBarEnable(boolean enable) {
        throw new RuntimeException();
    }

    /**
     * 打开关闭U盘模式
     *
     * @param open true：打开、false：关闭
     */
    public static void openUsbDisk(boolean open) {
        throw new RuntimeException();
    }

    /**
     * 得到打开关闭U盘模式
     *
     * @retrun true：打开、false：关闭
     */
    public static boolean getUsbDiskStatus() {
        throw new RuntimeException();
    }

    /**
     * 得到SN号
     *
     * @retrun SN号
     */
    public static String getDeviceSn() {
        throw new RuntimeException();
    }

    /**
     * 得到Imei号
     *
     * @retrun Imei号
     */
    public static String getDeviceImei() {
        throw new RuntimeException();
    }

    //*************************************************
    /* B.2.1 硬件模块管控接口                          */
    //*************************************************

    /**
     * WLAN管控
     *
     * @param mode 功能模式
     *             0：禁止终端使用无线网络
     *             1：只允许终端进行无线网络指纹扫描
     *             2: 允许使用无线网络
     * @return 成功返回true；失败返回false。
     */
    public static boolean setWlanPolicies(int mode) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前WLAN管控策略状态，参见setWlanPolicies方法的参数mode。
     */
    public static int getWlanPolicies() {
        throw new RuntimeException();
    }

    /**
     * 移动数据网络控制
     *
     * @param mode 功能模式
     *             0：强制关闭终端的移动数据网络，且不允许用户开启；
     *             1：强制开启终端的移动数据网络，且不允许用户关闭；
     *             2：允许用户自主控制终端移动数据网络的开关。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setDataConnectivityPolicies(int mode) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前功能模式，参见setDataConnectivityPolicies方法的参数mode。
     */
    public static int getDataConnectivityPolicies() {
        throw new RuntimeException();
    }

    /**
     * 蓝牙控制
     *
     * @param mode              功能模式
     *                          0：不允许终端使用蓝牙；
     *                          1：仅允许与准许蓝牙连接列表内的蓝牙设备建立蓝牙连接，列表可根据目标设备的蓝牙MAC地址进行定义。
     * @param bluetoothInfoList 仅当mode=1时有效，数组中每一项为一个JSON格式字符串，格式如下：mode：
     *                          {
     *                          "Mac":"00-11-22-33-44-55"
     *                          }。
     *                          6：不限制终端使用蓝牙
     * @return 成功返回true；失败返回false。
     */
    public static boolean setBluetoothPolicies(int mode, String[] bluetoothInfoList) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前蓝牙管控策略状态
     * string[0]：功能模式，参见setBluetoothPolicies方法的mode参数。
     * string[1]至string[n-1]：仅当mode=1时返回允许连接的特定蓝牙网络信息，参见setBluetoothPolicies方法的BluetoothInfoList参数
     */
    public static String[] getBluetoothPolicies() {
        throw new RuntimeException();
    }

    /**
     * NFC 管控
     *
     * @param mode 功能模式
     *             0：不允许终端启用NFC功能；
     *             1：强制终端开启NFC功能；
     *             2：允许用户自主控制NFC功能的开关。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setNfcPolicies(int mode) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前功能模式，参见setNfcPolicies方法的参数mode。
     */
    public static int getNfcPolicies() {
        throw new RuntimeException();
    }

    /**
     * 红外控制
     *
     * @param mode 功能模式
     *             0：不允许终端使用红外功能；
     *             1：允许终端使用红外功能。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setIrPolicies(int mode) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前功能模式，参见setIrPolicies方法的参数mode。
     */
    public static int getIrPolicies() {
        throw new RuntimeException();
    }

    /**
     * 生物特征识别模块控制
     *
     * @param mode 功能模式
     *             0：禁止终端使用生物特征识别识别模块；
     *             1：允许终端使用生物特征识别模块。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setBiometricRecognitionPolicies(int mode) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前功能模式，参见setBiometricRecognitionPolicies方法的参数mode。
     */
    public static int getBiometricRecognitionPolicies() {
        throw new RuntimeException();
    }

    /**
     * 定位服务控制
     *
     * @param mode 功能模式
     *             0：禁止终端使用定位服务；
     *             1：强制终端开启定位服务，且不允许关闭；
     *             2：不对定位服务的开关和使用进行控制。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setGpsPolicies(int mode) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前功能模式，参见setGpsPolicies方法的参数mode。
     */
    public static int getGpsPolicies() {
        throw new RuntimeException();
    }

    /**
     * USB工作模式控制
     *
     * @param mode 功能模式
     *             0：不允许终端通过USB接口进行数据传输，仅允许充电模式；
     *             1：不控制USB接口的工作模式，支持MTP模式、PTP模式、HOST模式进行数据传输与调试模式。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setUsbDataPolicies(int mode) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前功能模式，参见setUsbDataPolicies方法的参数mode。
     */
    public static int getUsbDataPolicies() {
        throw new RuntimeException();
    }

    /**
     * 扩展存储访问控制
     *
     * @param mode 功能模式
     *             0：不允许终端对扩展存储进行读写操作；
     *             1：仅允许终端对扩展存储进行读操作；
     *             2：允许终端对扩展存储进行读、写操作。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setExternalStoragePolicies(int mode) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前功能模式，参见setExternalStoragePolicies方法的参数mode。
     */
    public static int getExternalStoragePolicies() {
        throw new RuntimeException();
    }

    /**
     * 麦克风管控
     *
     * @param mode 功能模式
     *             0：不允许使用终端的麦克风；
     *             1：允许使用终端的麦克风。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setMicrophonePolicies(int mode) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前功能模式，参见setMicrophonePolicies方法的参数mode。
     */
    public static int getMicrophonePolicies() {
        throw new RuntimeException();
    }

    /**
     * 扬声器管控
     *
     * @param mode 功能模式
     *             0：不允许使用终端的扬声器；
     *             1：允许使用终端的扬声器。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setSpeakerPolicies(int mode) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前功能模式，参见setSpeakerPolicies方法的参数mode。
     */
    public static int getSpeakerPolicies() {
        throw new RuntimeException();
    }

    /**
     * 摄像头管控
     *
     * @param mode 功能模式
     *             0：不允许使用终端的摄像头；
     *             1：允许使用终端的摄像头。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setCameraPolicies(int mode) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前功能模式，参见setCameraPolicies方法的参数mode。
     */
    public static int getCameraPolicies() {
        throw new RuntimeException();
    }

    /**
     * 闪光灯管控
     *
     * @param mode 功能模式
     *             0：不允许使用终端的闪光灯；
     *             1：允许使用终端的闪光灯。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setFlashPolicies(int mode) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前功能模式，参见setFlashPolicies方法的参数mode。
     */
    public static int getFlashPolicies() {
        throw new RuntimeException();
    }

    /**
     * 扩展外设控制
     *
     * @param mode 功能模式
     *             0：不允许终端连接扩展外设；
     *             1：允许终端连接扩展外设。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setPeripheralPolicies(int mode) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前功能模式，参见setPeripheralPolicies方法的参数mode。
     */
    public static int getPeripheralPolicies() {
        throw new RuntimeException();
    }

    //*************************************************
    /* B.2.2 终端基本功能管控接口                      */
    //*************************************************

    /**
     * 通话管控
     *
     * @param mode 功能模式
     *             0：禁用通话功能；
     *             1：允许通话功能。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setVoicePolicies(int mode) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前功能模式，参见setVoicePolicies方法的参数mode。
     */
    public static int getVoicePolicies() {
        throw new RuntimeException();
    }

    /**
     * 短信管控
     *
     * @param mode   功能模式
     *               0：禁用短信功能；
     *               1：允许短信功能。
     * @param regExp 无用参数
     * @return 成功返回true；失败返回false。
     */
    public static boolean setSmsPolicies(int mode, String regExp) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前功能模式，参见setSmsPolicies方法的参数mode。
     */
    public static int getSmsPolicies() {
        throw new RuntimeException();
    }

    /**
     * 截屏管控
     *
     * @param mode 功能模式
     *             0：禁用截屏/录屏功能；
     *             1：允许截屏/录屏功能。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setCaptureScreenPolicies(int mode) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前功能模式，参见setCaptureScreenPolicies方法的参数mode。
     */
    public static int getCaptureScreenPolicies() {
        throw new RuntimeException();
    }

    /**
     * 网络共享管控
     *
     * @param mode        功能模式
     *                    0：禁止终端使用网络共享功能；
     *                    1：允许终端启用网络共享功能，但只允许列表中指定MAC地址的设备接入。
     * @param macInfoList 仅当mode=1时有效，数组中每一项为一个JSON格式字符串，格式如下："00-11-22-33-44-55"。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setWlanApPolicies(int mode, String[] macInfoList) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前网络共享管控策略状态
     * string[0]：功能模式，参见setWlanApPolicies方法的mode参数。
     * string[1]至string[n-1]：仅当mode=1时返回允许接入的特定MAC地址信息，
     * 参见setWlanApPolicies方法的macInfoList参数
     */
    public static String[] getWlanApPolicies() {
        throw new RuntimeException();
    }

    /**
     * APN管理控制
     *
     * @param mode 功能模式
     *             0：不允许用户增加、删除、修改、查看APN配置以及选择APN；
     *             1：仅允许用户查看APN配置，但不允许其他操作；
     *             2：允许用户增加、删除、修改、查看APN信息，及选择使用的APN。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setUserApnMgrPolicies(int mode) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前功能模式，参见getUserApnMgrPolicies方法的参数mode。
     */
    public static int getUserApnMgrPolicies() {
        throw new RuntimeException();
    }

    /**
     * 网络规则管控
     *
     * @param commandline Iptables命令行。
     * @return 返回值为命令执行的标准输出或标准错误输出。
     */
    public static String executeShellToSetIptables(String commandline) {
        throw new RuntimeException();
    }

    /**
     * 锁屏密码策略
     *
     * @param mode 密码模式
     *             0：要求设置字母数字混合密码，并对密码合规性进行检查；
     *             1：要求设置简单数字密码，并对密码合规性进行检查；
     *             2：要求启用生物识别技术；
     *             3：允许用户自行设定密码策略，不进行统一管控。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setUserPasswordPolicies(int mode) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前功能模式，参见setUserPasswordPolicies方法的参数mode。
     */
    public static int getUserPasswordPolicies() {
        throw new RuntimeException();
    }

    /**
     * 时间设置策略
     *
     * @param mode 功能模式
     *             0：不允许用户或应用修改本机时间及时间来源，并强制同步移动网络时间；
     *             1：允许用户或应用修改本机时间，以及设定时间来源。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setUserTimeMgrPolicies(int mode) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前功能模式，参见setUserTimeMgrPolicies方法的参数mode。
     */
    public static int getUserTimeMgrPolicies() {
        throw new RuntimeException();
    }

    /**
     * 恢复出厂设置控制
     *
     * @param mode 功能模式
     *             0：不允许用户在设置菜单中对终端进行恢复出厂设置的操作；
     *             1：允许用户在设置菜单中对终端进行恢复出厂设置的操作。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setFactoryResetPolicies(int mode) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前功能模式，参见setFactoryResetPolicies方法的参数mode。
     */
    public static int getFactoryResetPolicies() {
        throw new RuntimeException();
    }

    /**
     * 开发调试模式控制
     *
     * @param mode 功能模式
     *             0：不允许用户在设置菜单中对终端进行恢复出厂设置的操作；
     *             1：允许用户在设置菜单中对终端进行恢复出厂设置的操作。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setDevelopmentModePolicies(int mode) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前功能模式，参见setDevelopmentModePolicies方法的参数mode。
     */
    public static int getDevelopmentModePolicies() {
        throw new RuntimeException();
    }

    /**
     * 系统升级控制
     *
     * @param mode 功能模式
     *             0：不允许用户在设置菜单中对终端操作系统进行升级的操作；
     *             1：允许用户在设置菜单中对终端操作系统进行升级的操作。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setSystemUpdatePolicies(int mode) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前功能模式，参见setSystemUpdatePolicies方法的参数mode。
     */
    public static int getSystemUpdatePolicies() {
        throw new RuntimeException();
    }

    /**
     * 应用交互式安装/卸载接口控制
     *
     * @param mode    功能模式
     *                0：不允许任何终端应用调用应用交互式安装/卸载接口；
     *                1：仅允许接口授权列表指定的终端应用调用应用交互式安装/卸载接口，接口授权列表包含应用包名和应用签名证书指纹值；
     *                2：允许所有应用调用应用交互式安装/卸载接口。
     * @param appList 仅当mode=1时有效，数组中每一项为一个JSON格式字符串，格式如下：
     *                {
     *                "AppPackageName":"应用包名", "CertificateHash":"证书Sha1哈希值16进制字符串"
     *                }。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setInstallUninstallPolicies(int mode, String[] appList) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前交互式安装/卸载接口管控状态
     * string[0]：功能模式，参见setInstallUninstallPolicies方法的mode参数。
     * string[1]至string[n-1]：仅当mode=1时返回允许交互式安装/卸载的特定APP信息，参见setInstallUninstallPolicies方法的appList参数。
     */
    public static String[] getInstallUninstallPolicies() {
        throw new RuntimeException();
    }

    /**
     * 应用静默安装/卸载接口控制
     *
     * @param mode    功能模式
     *                0：不允许所有应用调用应用静默安装/卸载接口；
     *                1：仅允许接口授权列表内的终端应用调用应用静默安装/卸载接口，接口授权列表包含应用包名和应用签名证书指纹值；
     *                2：允许所有应用调用应用静默安装/卸载接口。
     * @param appList 仅当mode=0时有效，数组中每一项为一个JSON格式字符串，格式如下： {"AppPackageName":"应用包名", "CertificateHash":"证书Sha1哈希值16进制字符串"}。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setSilentInstallUninstallPolicies(int mode, String[] appList) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前静默安装/卸载接口管控状态
     * string[0]：功能模式，参见setSilentInstallUninstallPolicies方法的mode参数。
     * string[1]至string[n-1]：仅当mode=1时返回允许静默安装/卸载的特定APP信息，参见setSilentInstallUninstallPolicies方法的appList参数。
     */
    public static String[] getSilentInstallUninstallPolicies() {
        throw new RuntimeException();
    }

    /**
     * 应用adb方式安装/卸载功能控制
     *
     * @param mode 功能模式
     *             0：允许使用adb方式安装/卸载终端应用；
     *             1：不允许使用adb方式安装/卸载终端应用。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setAdbInstallUninstallPolicies(int mode) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前adb方式安装/卸载功能管控状态，参见setAdbInstallUnistallPolicies方法的参数mode。
     */
    public static int getAdbInstallUninstallPolicies() {
        throw new RuntimeException();
    }

    //*************************************************
    /* B.2.3 终端应用管控接口                           */
    //*************************************************

    /**
     * 应用静默安装
     *
     * @param pathToAPK APK文件完整路径。
     * @return 成功返回true；失败返回false。
     */
    public static boolean installPackage(String pathToAPK) {
        throw new RuntimeException();
    }

    /**
     * 应用静默卸载
     *
     * @param appPackageName 应用包名
     * @return 成功返回true；失败返回false。
     */
    public static boolean uninstallPackage(String appPackageName) {
        throw new RuntimeException();
    }

    /**
     * 应用安装控制
     *
     * @param mode            应用名单类型
     *                        0：黑名单(应用包名列表中的所有项都不允许安装)；
     *                        1：白名单(只允许安装应用包名列表中的项)。
     * @param appPackageNames 应用包名列表。当appPackageNames为空时，取消所有已设定的应用。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setAppInstallationPolicies(int mode, String[] appPackageNames) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前应用安装管控状态
     * string[0]：功能模式，参见setAppInstallationPolicies方法的mode参数。
     * string[1]至string[n-1]：应用包名列表。
     */
    public static String[] getAppInstallationPolicies() {
        throw new RuntimeException();
    }

    /**
     * 应用卸载控制
     *
     * @param mode            应用名单类型
     *                        0：黑名单(应用包名列表中的所有项均强制卸载)；
     *                        1：白名单(应用包名列表中的所有项禁止卸载)。
     * @param appPackageNames 应用包名列表。当appPackageNames为空时，取消所有已设定的应用。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setAppUninstallationPolicies(int mode, String[] appPackageNames) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前应用卸载管控状态
     * string[0]：功能模式，参见setAppUninstallationPolicies方法的mode参数。
     * string[1]至string[n-1]：应用包名列表。
     */
    public static String[] getAppUninstallationPolicies() {
        throw new RuntimeException();
    }

    /**
     * 应用运行管控
     *
     * @param mode               应用名单类型
     *                           0：黑名单(应用包名列表中的所有项都不允许运行)；
     *                           1：白名单（应用包名列表中的项如已安装，则强制运行）。
     * @param appPackageNameList 应用包名列表（含应用组件名）。当appPackageNames为空时，取消所有已设定的应用。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setRunAppPolicies(int mode, String[] appPackageNameList) {
        throw new RuntimeException();
    }

    /**
     * @return 返回值为当前应用运行管控状态
     * string[0]：功能模式，参见setRunAppPolicies方法的mode参数；
     * string[1]至string[n-1]：应用包名列表（含应用组件名），
     * 参见setRunAppPolicies方法的 appPackageNameList参数。
     */
    public static String[] getRunAppPolicies() {
        throw new RuntimeException();
    }

    /**
     * 应用权限控制
     *
     * @param appPackageName 应用包名
     * @param permissions    应用对应权限，内容为JSON数组，每一项对一种权限进行定义，其中包括以下字段：
     *                       permission：权限类型，详见附录B.3.1，不区分大小写。
     *                       mode：权限授权类型，详见附录B.3.2，不区分大小写。
     *                       例如禁止拨打电话，允许发送短信格式如下:
     *                       [
     *                       {
     *                       "permission":"CALL_PHONE", "mode":"DISALLOW"
     *                       },
     *                       {
     *                       "permission":"SEND_SMS", "mode":"ALLOWED"
     *                       }
     *                       ]
     * @return 成功返回true；失败返回false。
     */
    public static boolean setAppPermission(String appPackageName, String permissions) {
        throw new RuntimeException();
    }

    /**
     * @param appPackageName 应用包名
     * @return 返回值为应用包名对应的权限说明，格式参见setAppPermission方法的参数permissions。
     */
    public static String getAppPermission(String appPackageName) {
        throw new RuntimeException();
    }

    //*************************************************
    /* B.2.4 监测采集管控接口                           */
    //*************************************************

    /**
     * 应用流量查询
     *
     * @param appPackageName 终端应用包名
     * @return 成功，则返回终端开机到当前时刻给定包名的应用所消耗的流量（如无流量，该项值设置为0）。
     * string[0]：通过数据网络的发送量；
     * string[1]：通过数据网络的接收量；
     * string[2]：通过WLAN无线网络的发送量；
     * string[3]：通过WLAN无线网络的接收量。
     * 失败返回null。
     */
    public static String[] getAppTrafficInfo(String appPackageName) {
        throw new RuntimeException();
    }

    /**
     * 应用耗电量查询
     *
     * @return 成功，则返回终端开机到当前时刻所有应用的耗电情况：
     * string[0]：终端应用包名；
     * string[1]：该终端应用的耗电量（mAh）。
     * 失败返回null。
     */
    public static List<String[]> getAppPowerUsage() {
        throw new RuntimeException();
    }

    /**
     * 应用运行时长查询
     *
     * @return List<String [ ]>：所有应用累计运行情况：
     * string[0]：终端应用PID，如当前未运行则为空字符串；
     * string[1]：终端应用UID；
     * string[2]：终端应用包名；
     * string[3]：终端应用已运行时间（毫秒）。
     */
    public static List<String[]> getAppRunInfo() {
        throw new RuntimeException();
    }

    /**
     * 应用运行异常查询
     *
     * @return List<String [ ]>：所有应用运行异常情况：
     * string[0]：终端应用包名
     * string[1]：该终端应用发生异常次数。
     */
    public static List<String[]> getAppRuntimeExceptionInfo() {
        throw new RuntimeException();
    }

    /** @hide */
    public static void addAppRuntimeExceptionCount(String packageName, int count) {
        throw new RuntimeException();
    }

    /**
     * 硬件资产查询
     *
     * @return String[]：返回终端部分硬件信息和相关系统信息，具体如下：
     * string[0]：IMEI/MEID（主卡对应的设备识别码）
     * string[1]：MEID/MEID（副卡对应的设备识别码）（如无副卡，可为空）
     * string[2]：运行内存容量（字符串，单位GB，如3GB）
     * string[3]：内部存储容量（字符串，单位GB，如16GB）
     * string[4]：屏幕分辨率（字符串，长*高，如640*480）
     * string[5]：终端生产厂商
     * string[6]：终端型号
     * string[7]：系统内核版本号
     * string[8]：系统软件版本号
     * string[9]：安全加固双操作系统版本（如无，可为空）
     * string[10]：系统安全补丁程序级别（如无，可为空）
     * string[11]：ICCID（SIM卡1的ICCID）
     * string[12]：ICCID（SIM卡2的ICCID）（如无卡2，可为空）
     * string[13]：IMSI（SIM卡1的IMSI）
     * string[14]：IMSI（SIM卡2的IMSI）（如无卡2，可为空）
     * string[15]：CPU型号
     * stirng[16]：支持的移动网络制式
     * string[17]：无线网卡芯片型号
     * string[18]：蓝牙芯片型号
     * string[19]：NFC芯片型号
     * string[20]：定位芯片型号
     */
    public static String[] getDeviceInfo() {
        throw new RuntimeException();
    }

    /**
     * 软件信息查询
     *
     * @return String[][]：返回已安装应用的信息，以下为第二维index所包含的值：
     * string[][0]：APP名称（appName）
     * string[][1]：APP包名（packageName）
     * string[][2]：初次安装时间（firstInstallTime）
     * string[][3]：最后更新时间（lastUpdateTime）
     * string[][4]：用户友好版本号（versionName）
     * string[][5]：内部版本号（versionCode）
     * string[][6]：开发者（developer）
     */
    public static String[][] getSoftwareInfo() {
        throw new RuntimeException();
    }

    /**
     * ROOT状态检测
     *
     * @return 设备已ROOT返回true；设备未ROOT返回false
     */
    public static boolean getRootState() {
        throw new RuntimeException();
    }

    /**
     * 系统完整性检测
     *
     * @return 系统完整性未被破坏返回true；系统完整性被破坏返回false
     */
    public static boolean getSystemIntegrity() {
        throw new RuntimeException();
    }

    /**
     * 终端运行状态查询
     *
     * @return String[]：返回终端运行状态信息，以下为每个index所包含的值：
     * string[0]：CPU占用率
     * string[1]：内存占用率
     * string[2]：存储占用率
     */
    public static String[] getDeviceState() {
        throw new RuntimeException();
    }

    /**
     * 可信检测结果查询
     *
     * @return 返回终端可信检测结果
     */
    public static String getTpmReport() {
        throw new RuntimeException();
    }

    //*************************************************
    /* B.2.5 系统使用模式管控接口                        */
    //*************************************************

    /**
     * @param mode 系统使用模式切换管控开关
     *             0：不允许用户切换系统使用模式；
     *             1：允许用户切换系统使用模式。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setContainerPolicies(int mode) {
        throw new RuntimeException();
    }

    /**
     * 获取系统使用模式切换策略
     *
     * @return 返回值为系统使用模式切换管控开关当前状态，参见setContainerPolicies方法的参数mode。
     */
    public static int getContainerPolicies() {
        throw new RuntimeException();
    }

    /**
     * 获取系统使用模式总数
     *
     * @return 返回值为系统使用模式总数，1为单模式，大于1则为多模式。
     */
    public static int getContainerTotalNumber() {
        throw new RuntimeException();
    }

    /**
     * 强制切换系统使用模式
     *
     * @param containerNumber 系统使用模式序号
     *                        0：安全等级最低的使用模式；
     *                        1~N-1：安全等级逐步提高，其中N为系统使用模式总数。
     * @return 成功返回true；失败返回false。
     */
    public static boolean setContainerNumber(int containerNumber) {
        throw new RuntimeException();
    }

    /**
     * 获取当前激活使用模式序号
     *
     * @return 返回值为当前激活的系统使用模式序号。
     */
    public static int getContainerNumber() {
        throw new RuntimeException();
    }

    /**
     * 获取所处使用模式激活状态
     *
     * @return 所处使用模式当前为激活状态（处于前台）返回true；所处使用模式当前为非激活状态（处于后台）返回false。
     */
    public static boolean isActived() {
        throw new RuntimeException();
    }

    //*************************************************
    /* B.2.6　远程控制和配置接口                         */
    //*************************************************

    /**
     * 终端锁定
     *
     * @return 成功返回true； 失败返回false
     */
    public static boolean lockDevice() {
        throw new RuntimeException();
    }

    /**
     * 终端解锁
     *
     * @return 成功返回true；失败返回false
     */
    public static boolean unlockDevice() {
        throw new RuntimeException();
    }

    /**
     * 数据擦除
     *
     * @return 成功返回true；失败返回false
     */
    public static boolean wipeDeviceData() {
        throw new RuntimeException();
    }

    /**
     * 终端重启管控
     *
     * @return 成功返回true；失败返回false
     */
    public static boolean rebootDevice() {
        throw new RuntimeException();
    }

    /**
     * 终端关机管控
     *
     * @return 成功返回true；失败返回false
     */
    public static boolean shutdownDevice() {
        throw new RuntimeException();
    }

    /**
     * 获取当前定位信息
     *
     * @return 成功返回手机坐标位置，JSON格式：{
     * "longitude" = "经度值", "latitude" = "纬度值", "height" = "高度值"
     * }；失败返回null
     */
    public static String getDevicePosition() {
        throw new RuntimeException();
    }

    /**
     * WLAN配置
     *
     * @param wlanConfig WLAN参数，采用JSON数组格式，数组中每一项对应一条WLAN信息：[
     *                   {
     *                   "ssid":"Tenda_2E5560", "bssid":"c8:3a:35:2e:55:60", "pwd":"12345678"
     *                   },
     *                   {
     *                   "ssid":"cisco-60A8", "bssid":"d8:24:bd:76:60:aa", "pwd":"0123456789"
     *                   }]。
     * @return 成功返回true；失败返回false
     */
    public static boolean setWlanConfiguration(String wlanConfig) {
        throw new RuntimeException();
    }

    /**
     * 返回值为当前已设置的WLAN信息，
     *
     * @return 格式参见setWlanConfiguration方法的参数wlanConfig
     */
    public static String getWlanConfiguration() {
        throw new RuntimeException();
    }

    /**
     * 增加APN
     *
     * @param apnInfo APN信息，采用JSON格式。
     *                "name"：APN描述（用于显示标题）；
     *                "apn"：APN名称；
     *                "type"：APN类型，如"default,supl"；
     *                "numeric"：运营商网络码，一般通过getSimOperator获取；
     *                "mcc"：MCC；
     *                "mnc"：MNC；
     *                "proxy"：代理；
     *                "port"：端口；
     *                "mmsproxy"：彩信代理；
     *                "mmsport"：彩信端口；
     *                "user"：用户名；
     *                "server"：服务器；
     *                "password"：密码；
     *                "mmsc"：MMSC。
     * @return 成功返回新创建APN ID；失败返回-1
     */
    public static int createApn(String apnInfo) {
        throw new RuntimeException();
    }

    /**
     * 删除APN
     *
     * @param apnId APN标识ID。
     * @return 成功返回true；失败返回false
     */
    public static boolean deleteApn(int apnId) {
        throw new RuntimeException();
    }

    /**
     * 查询APN列表
     *
     * @return 成功返回APN id列表（与用户可见的列表数量和列表项一致）；失败返回空
     */
    public static List<Integer> getApnList() {
        throw new RuntimeException();
    }

    /**
     * 查询APN详情
     *
     * @param apnId APN标识ID。
     * @return 成功返回APN信息，参见创建APN接口参数定义；失败返回空
     */
    public static String getApnInfo(int apnId) {
        throw new RuntimeException();
    }

    /**
     * 查询当前使用的APN
     *
     * @return 成功返回当前APN ID；失败返回-1
     */
    public static int getCurrentApn() {
        throw new RuntimeException();
    }

    /**
     * 设置当前使用的APN
     *
     * @param apnId APN标识ID。
     * @return 成功返回true；失败返回false
     */
    public static boolean setCurrentApn(int apnId) {
        throw new RuntimeException();
    }

    /**
     * 修改本机日期与时间管控
     *
     * @param millis 自1970.1.1 00:00:00为起点的时间值（毫秒）
     * @return 成功返回true；失败返回false
     */
    public static boolean setSysTime(long millis) {
        throw new RuntimeException();
    }

}
